//package com.kaili.common.util;
//
//
//import java.io.BufferedOutputStream;
//import java.io.IOException;
//import java.net.URL;
//import java.net.URLDecoder;
//import org.csource.common.MyException;
//import org.csource.common.NameValuePair;
//import org.csource.fastdfs.ClientGlobal;
//import org.csource.fastdfs.StorageClient1;
//import org.csource.fastdfs.StorageServer;
//import org.csource.fastdfs.TrackerClient;
//import org.csource.fastdfs.TrackerServer;
//public class FastDFSClient {
//
//
//    private TrackerClient trackerClient = null;
//
//    private TrackerServer trackerServer = null;
//
//    private StorageServer storageServer = null;
//
//    private StorageClient1 storageClient = null;
//
//    public FastDFSClient(String conf) throws Exception {
//
//
//        if (conf.contains("classpath:")) {
//
//
//            String path = URLDecoder.decode(getClass().getProtectionDomain().getCodeSource().getLocation().toString(), "UTF-8");
//
//
//            path = path.substring(5);
//
//
//            conf = conf.replace("classpath:", URLDecoder.decode(path, "UTF-8"));
//
//
//        }
//
//
//        ClientGlobal.init(conf);
//
//
//        trackerClient = new TrackerClient();
//
//
//        trackerServer = trackerClient.getConnection();
//
//
//        storageServer = null;
//
//
//        storageClient = new StorageClient1(trackerServer, storageServer);
//
//
//    }
//
//
//    /**
//     * 上传文件方法
//     * <p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>Title: uploadFile</p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>Description: </p>
//     *
//     * @param fileName 文件全路径
//     * @param extName  文件扩展名，不包含（.）
//     * @param metas    文件扩展信息
//     * @return
//     * @throws Exception
//     */
//
//
//    public String uploadFile(String fileName, String extName, NameValuePair[] metas) {
//
//
//        String result = null;
//
//
//        try {
//
//
//            result = storageClient.upload_file1(fileName, extName, metas);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//
//
//    }
//
//
//    /**
//     * 上传文件,传fileName
//     *
//     * @param fileName 文件的磁盘路径名称 如：D:/image/aaa.jpg
//     * @return null为失败
//     */
//
//
//    public String uploadFile(String fileName) {
//
//
//        return uploadFile(fileName, null, null);
//
//
//    }
//
//
//    /**
//     * @param fileName 文件的磁盘路径名称 如：D:/image/aaa.jpg
//     * @param extName  文件的扩展名 如 txt jpg等
//     * @return null为失败
//     */
//
//
//    public String uploadFile(String fileName, String extName) {
//
//
//        return uploadFile(fileName, extName, null);
//
//
//    }
//
//
//    /**
//     * 上传文件方法
//     * <p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>Title: uploadFile</p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>
//     * <p>Description: </p>
//     *
//     * @param fileContent 文件的内容，字节数组
//     * @param extName     文件扩展名
//     * @param metas       文件扩展信息
//     * @return
//     * @throws Exception
//     */
//
//
//    public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) {
//
//
//        String result = null;
//
//
//        try {
//
//
//            result = storageClient.upload_file1(fileContent, extName, metas);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//
//
//    }
//
//
//    /**
//     * 上传文件
//     *
//     * @param fileContent 文件的字节数组
//     * @return null为失败
//     * @throws Exception
//     */
//
//
//    public String uploadFile(byte[] fileContent) throws Exception {
//
//
//        return uploadFile(fileContent, null, null);
//
//
//    }
//
//    /**
//     * 上传文件,带有服务器组名的上传
//     *
//     * @param fileContent 文件的字节数组
//     * @return null为失败
//     * @throws Exception
//     */
//    public String uploadFile(String groupName,byte[] fileContent, String extName, NameValuePair[] metas){
//        String result = null;
//
//
//        try {
//
//
//            result = storageClient.upload_file1(groupName,fileContent,extName,metas);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//    }
//
//
//    /**
//     * 上传文件
//     *
//     * @param fileContent 文件的字节数组
//     * @param extName     文件的扩展名 如 txt  jpg png 等
//     * @return null为失败
//     */
//
//
//    public String uploadFile(byte[] fileContent, String extName) {
//
//
//        return uploadFile(fileContent, extName, null);
//
//
//    }
//
//
//    /**
//     * 文件下载到磁盘
//     *
//     * @param path   图片路径
//     * @param output 输出流 中包含要输出到磁盘的路径
//     * @return -1失败,0成功
//     */
//
//
//    public int download_file(String path, BufferedOutputStream output) {
//
//
//        //byte[] b = storageClient.download_file(group, path);
//
//
//        int result = -1;
//
//
//        try {
//
//
//            byte[] b = storageClient.download_file1(path);
//
//
//            try {
//
//
//                if (b != null) {
//
//
//                    output.write(b);
//
//
//                    result = 0;
//
//
//                }
//
//
//            } catch (Exception e) {
//            } //用户可能取消了下载
//
//
//            finally {
//
//
//                if (output != null)
//
//
//                    try {
//
//
//                        output.close();
//
//
//                    } catch (IOException e) {
//
//
//                        e.printStackTrace();
//
//
//                    }
//
//
//            }
//
//
//        } catch (Exception e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//
//
//    }
//
//
//    /**
//     * 获取文件数组
//     *
//     * @param path 文件的路径 如group1/M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg
//     * @return
//     */
//
//
//    public byte[] download_bytes(String path) {
//
//
//        byte[] b = null;
//
//
//        try {
//
//
//            b = storageClient.download_file1(path);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return b;
//
//
//    }
//
//
//    /**
//     * 删除文件
//     *
//     * @param group       组名 如：group1
//     * @param storagePath 不带组名的路径名称 如：M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg
//     * @return -1失败,0成功
//     */
//
//
//    public Integer delete_file(String group, String storagePath) {
//
//
//        int result = -1;
//
//
//        try {
//
//
//            result = storageClient.delete_file(group, storagePath);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//
//
//    }
//
//
//    /**
//     * @param storagePath 文件的全部路径 如：group1/M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg
//     * @return -1失败,0成功
//     * @throws IOException
//     * @throws Exception
//     */
//
//
//    public Integer delete_file(String storagePath) {
//
//
//        int result = -1;
//
//
//        try {
//
//
//            result = storageClient.delete_file1(storagePath);
//
//
//        } catch (IOException e) {
//
//
//            e.printStackTrace();
//
//
//        } catch (MyException e) {
//
//
//            e.printStackTrace();
//
//
//        }
//
//
//        return result;
//
//
//    }
//
//
//}